package com.hst.capacity.application.biz;

import cn.smartravel.framework.redis.domain.LiveLocation;
import com.hst.capacity.domain.model.request.driver.*;
import com.hst.capacity.domain.model.response.PagingResultVO;
import com.hst.capacity.domain.model.response.driver.DriverBandCarVO;
import com.hst.capacity.domain.model.response.driver.DriverPagingVO;
import com.hst.capacity.domain.model.response.driver.OrderPoolDriverPagingVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.HashMap;
import java.util.List;

/**
 *  司机运营模块业务编排
 *
 * */
public interface DriverBiz {

    PagingResultVO<DriverPagingVO> search(DriverSearchParam param);

    PagingResultVO<DriverPagingVO> stpSearch(DriverSearchParam param);

    PagingResultVO<DriverPagingVO> cityLineSearch(DriverSearchParam param);

    PagingResultVO<OrderPoolDriverPagingVO> orderPoolSearch(DriverSearchParam param);

    DriverBandCarVO driverBandVehicle(DriverBandCarParam param);

    String deviceUnband(String idDriver);

    LiveLocation driverLocation(String idDriver);

    String add(DriverAddParam param, MultipartFile[] multipartFiles);

    DriverBandCarVO driverListVehicle(String idDriver);

    Object driverAddCertificate(DriverAddCertificateParam param);

    Object driverUnBandVehicle(DriverUnBandCarParam param);

    Boolean review(String idDriver);

    Boolean driverUpdateStatus(Integer status, String idDriver);

    Object driverEditSelect(String idDriver,String moduleName);

    HashMap getDriverInfoByDriverId(String idDriver);
    
    String driverSaveAccount(SaveAccountParam param);

    SaveAccountParam driverSaveAccountSelect(String idDriver);

    Boolean driverStatusToggle(String idDriver);

    List driverAssociateVehicle(String idFranchisee,String str);

    int fleetDriverCount(String idFleet);

    String createDriverQrCode(String idDriver);

    String createFileDriverQrCode(String idDriver);

}
